package com.hsnn.medstgmini.sys.controller;

import javax.servlet.http.HttpSession;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hsnn.medstgmini.Constants;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.sys.service.PassWordManager;
import com.hsnn.medstgmini.util.Pagination;




@Controller
@RequestMapping("/sysPassWordEdit")
public class PassWordEditController {

	private static final Logger log = Logger.getLogger(PassWordEditController.class);
	
	@Autowired
	private PassWordManager passWordManager;
	
	@Autowired
	private HttpSession session;
	
	
	
	/**
	 * @category 获取当前登陆人信息
	 * @date 2015年6月14日
	 * @return
	 */
	private SysUser getUser() {
		return (SysUser) session.getAttribute(Constants.USERINFO);
	}

	/**
	 * 
	 * @category 跳转密码修改页面
	 * @Auther xugp
	 * @date 2015年6月26日 下午1:17:05
	 * @return
	 * @return String
	 */
	@RequestMapping("/PassWordEdit")
	public String getPassWordEdit(){
		return "/sys/PassWordEdit";
	}
	
	/**
	 * @category 中心修改主用户密码
	 * @date 
	 * @param model
	 * @param id
	 * @return
	 */
	@RequestMapping("/changePassword")
	@ResponseBody
	public Pagination changePassword(Model model, String password, String newpassword) {//传页面的值
		log.info("enter printPassword method");
		Pagination page = new Pagination(); 
		try {
			SysUser user = getUser();//读取session的信息(密码)
			if (StringUtils.isNotBlank(password) && StringUtils.isNotBlank(newpassword)) {	//判断取值是不是Null
				String oldpassword = DigestUtils.md5Hex(password);			//密码加密
				if (oldpassword.equals(user.getPassword())) {				//判断原密码是否相等
					String newPwd = DigestUtils.md5Hex(newpassword);		//新密码加密
					passWordManager.changePassword(user.getId(), newPwd);	//根据Id修改密码
					page.setSuccess(true);
					user.setPassword(newPwd);//保存新密码
				} else {
					page.setMsg("当前密码不正确！");
					page.setSuccess(false);
				}
			}
		} catch (Exception e) {
			log.error("",e);
			page.setMsg("保存失败！");
			page.setSuccess(false);
		}
		return page;
	}

	
	
}
